package thread;

import java.util.concurrent.ConcurrentMap;

/**
 * 创建线程的几种方式
 *
 * @author CY
 * @date 2023/03/17 13:14
 **/
public class Create {
    //通过继承Thread,这种方式占用了类的继承位置;
    static class cy extends Thread {
        @Override
        public void run() {
            System.out.println("我是通过继承Thread类的方式来创建线程");
        }

        public static void main(String[] args) {
            final cy cy = new cy();
            cy.start();
        }
    }


    //实现Runanle接口 更常用
    static class cy1 implements Runnable {

        @Override
        public void run() {
            System.out.println("我是通过实现Runable接口的方式来创建线程");
        }

        public static void main(String[] args) {
            new Thread(new cy1()).start();
        }
    }

    //使用匿名内部类的方式创建
    static class cy2 {
        public static void main(String[] args) {
            new Thread(new Runnable() {

                @Override
                public void run() {
                    System.out.println("我是通过实现匿名内部类的方式来创建线程");
                }
            }).start();


        }

    }


    //使用Lamdon表达式的方式来使用
    static class cy3 {
        public static void main(String[] args) {
            new Thread(() -> {
                System.out.println("我是通过实现Landon表达式的方式来创建线程");
            }).start();
        }

    }




}
